﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using AutoBackupDatabase.BLL;
using AutoBackupDatabase.General;
using AutoBackupDatabase.ENT;

namespace AutoBackupDatabase
{
    public partial class GroupUser_ucc : DevExpress.XtraEditors.XtraUserControl
    {
        private GROUPUSERBLL groupBLL;
        List<GROUPUSERENT> listgroup;
        public GroupUser_ucc()
        {
            InitializeComponent();
            groupBLL = new GROUPUSERBLL();
            listgroup = new List<GROUPUSERENT>();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                if (!checkRole.CHECKROLE(general.groupUserCode, Role.groupuser_add))
                {
                    MessageBox.Show("Bạn chưa chưa được cấp quyền sử dụng cho tính năng này");
                    return;
                }
                if (btnAdd.Text == "THÊM MỚI")
                {
                    general.ChangeButtonStatus("insert", btnAdd, btnUpdate, btnDelete);
                    txtGroupUserCode.Text = "";
                    txtGroupUserName.Text = "";
                    txtGroupUserDescription.Text = "";
                    txtGroupUserCode.Enabled = true;
                    txtGroupUserDescription.Enabled = true;
                    return;
                }
                else if (btnAdd.Text == "LƯU")
                {
                    if (!Validator.IsNull(txtGroupUserName.Text))
                    {
                        MessageBox.Show("Tên nhóm không được bỏ trống vui lòng kiểm tra lại", "Thông báo");
                        return;
                    }
                    if (listgroup.Count > 0)
                    {
                        if (listgroup.Exists(p => p.GROUPUSERNAME.Equals(txtGroupUserName.Text.TrimStart().TrimEnd())))
                        {
                            MessageBox.Show("Tên nhóm này [" + txtGroupUserName.Text + "] đã tồn tại vui lòng nhập tên khác", "Thông báo");
                            return;
                        }
                    }






                    GROUPUSERENT ent = new GROUPUSERENT();
                    ent.GROUPUSERNAME = txtGroupUserName.Text;
                    ent.GROUPUSERDESCRIPTION = txtGroupUserDescription.Text;
                    ent.USERCREATE = LoginInfo._USERNAME;
                    ent.USERUPDATE = LoginInfo._USERNAME;
                    if (groupBLL.INSERTGROUPUSER(ent))
                    {
                        txtGroupUserCode.Text = "";
                        txtGroupUserName.Text = "";
                        txtGroupUserDescription.Text = "";
                        general.ChangeButtonStatus("insert", btnAdd, btnUpdate, btnDelete);

                        MessageBox.Show("Thêm mới thành công", "Thông báo");
                        txtGroupUserCode.Enabled = false;
                        txtGroupUserDescription.Enabled = false;
                        LoadDataGroupUser();
                    }
                    else
                    {
                        MessageBox.Show("Thêm mới thất bại vui lòng kiểm tra lại dữ liệu ", "Thông báo");
                    }
                }
                else
                    MessageBox.Show("Thêm mới thất bại vui lòng kiểm tra lại dữ liệu ", "Thông báo");
            }
            catch (Exception)
            {
                
                
            }

            
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                if (!checkRole.CHECKROLE(general.groupUserCode, Role.groupuser_edit))
                {
                    MessageBox.Show("Bạn chưa chưa được cấp quyền sử dụng cho tính năng này");
                    return;
                }
                if (btnUpdate.Text == "CẬP NHẬT")
                {
                    general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                    txtGroupUserCode.Enabled = true;
                    txtGroupUserDescription.Enabled = true;
                    return;

                }
                else
                    if (btnUpdate.Text == "HỦY")
                    {
                        general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                        txtGroupUserCode.Enabled = false;
                        txtGroupUserDescription.Enabled = false;
                      
                    }
                    else if (btnUpdate.Text == "LƯU")
                    {

                        if (!Validator.IsNull(txtGroupUserCode.Text))
                        {
                            MessageBox.Show("Vui lòng chọn dữ liệu cần cập nhật", "Thông báo");
                            return;
                        }
                        if (!Validator.IsNull(txtGroupUserName.Text))
                        {
                            MessageBox.Show("Tên nhóm không được bỏ trống vui lòng kiểm tra lại", "Thông báo");
                            return;
                        }



                        GROUPUSERENT ent = new GROUPUSERENT();
                        ent.GROUPUSERNAME = txtGroupUserName.Text;
                        ent.GROUPUSERDESCRIPTION = txtGroupUserDescription.Text;
                        ent.USERCREATE = LoginInfo._USERNAME;
                        ent.USERUPDATE = LoginInfo._USERNAME;
                        ent.GROUPUSERCODE = int.Parse(txtGroupUserCode.Text);

                        if (groupBLL.UPDATEGROUPUSERBYGROUPUSERID(ent))
                        {
                            MessageBox.Show("Cập nhật thành công", "Thông báo");
                            txtGroupUserCode.Enabled = false;
                            txtGroupUserDescription.Enabled = false;
                            LoadDataGroupUser();
                            general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                         
                        }
                    }
                    else
                        MessageBox.Show("Cập nhật thất bại vui lòng kiểm tra lại dữ liệu ", "Thông báo");
            }
            catch (Exception)
            {

                return;
            }
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            try
            {


                if (!checkRole.CHECKROLE(general.groupUserCode, Role.groupuser_delete))
                {
                    MessageBox.Show("Bạn chưa chưa được cấp quyền sử dụng cho tính năng này");
                    return;
                }
                if (btnDelete.Text == "HỦY")
                {
                    general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                    txtGroupUserCode.Enabled = false;
                    txtGroupUserDescription.Enabled = false;
                }
                else if (btnDelete.Text == "XÓA" && Validator.IsNull(txtGroupUserCode.Text))
                {
                    if (MessageBox.Show(MessageShow.delConfirmInfo, MessageShow.delConfirmCaption, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    {
                        GROUPUSERENT ent = new GROUPUSERENT();
                        ent.GROUPUSERCODE = int.Parse( txtGroupUserCode.Text);
                        groupBLL.DELTELEGROUPUSERBYGROUPUSERID(ent);
                        LoadDataGroupUser();
                        general.ChangeButtonStatus("delete", btnAdd, btnUpdate, btnDelete);
                    }
                }
                else
                    return;
            }
            catch (Exception)
            {

                return;
            }
        }

        public void LoadDataGroupUser()
        {
            listgroup = groupBLL.GET_GROUPUSER_ALL();
            gridGroupUser.DataSource = listgroup;
            if (gridView1.RowCount > 0)
            {
                gridView1.InvertRowSelection(0);
            }
        }

        private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            try
            {
                if (e.RowHandle >= 0)
                {
                    GROUPUSERENT group = (GROUPUSERENT)gridView1.GetFocusedRow();
                    txtGroupUserCode.Text  = group.GROUPUSERCODE.ToString();
                    txtGroupUserName.Text = group.GROUPUSERNAME;
                    txtGroupUserDescription.Text = group.GROUPUSERDESCRIPTION;
                }
            }
            catch (Exception)
            {

                return;
            }
        }
        DETAILGROUPUSERROLEBLL checkRole = new DETAILGROUPUSERROLEBLL();

        private void GroupUser_ucc_Load(object sender, EventArgs e)
        {
            try
            {
               

            
                LoadDataGroupUser();
            }
            catch (Exception)
            {

               
            }
           
        }
    }
}
